home *** CD-ROM | disk | FTP | other *** search
/ Amiga GigaPD 3 / Amiga_GigaPD_v3_3of3.iso / amiga-magazin / ungepackt / mai_94 / disk2 / tips & tricks / joy.s < prev    next >
Text File  |  1993-06-25  |  1KB  |  39 lines

  1. ;                              Markus Horn
  2.  
  3. ;Diese Joystickfunktion benutzt Shift und addx-Befehle um
  4. ;die richtungsspezifischen Bits auszufiltern.
  5.  
  6. ;m÷chte man einen Joystick in Port1 abfragen, schreibt man
  7. ;anstelle von         btst    #7,$bfe001
  8. ;            btst    #6,$bfe001
  9. ;und anstelle von    move.w    $dff00c,d0
  10. ;            move.w    $dff00a,d0
  11.  
  12. ;D1 enthΣlt das Ergebnis der Joystickauswertung.
  13.  
  14. ;    Bit0    -    Joystick oben
  15. ;    Bit1    -    Joystick unten
  16. ;    Bit2    -    Joystick links
  17. ;    Bit3    -    Joystick rechts
  18. ;    Bit4    -    Joystick Feuerknopf gedrⁿckt
  19.  
  20. testjoy2:
  21.     moveq    #0,d1        ;d1 - Joyergebnis l÷schen
  22.     btst    #7,$bfe001    ;teste Feuerknopf Joystick2
  23.     bne.s    rechts        ;nicht gedrⁿckt weiter
  24.     addq.w    #1,d1        ;feuerknopf - Bit4 in d1 setzen
  25. rechts:    move.w    $dff00c,d0    ;Joystickstatus -> d0
  26.     move.w    d0,d2        ;und ->d2
  27.     lsr.w    #1,d0        ;d0 ein Bit nach rechts schieben
  28.     eor.w    d0,d2        ;und mit d2 verknⁿpfen
  29.     lsr.w    #1,d0        ;rechtsrelevantes Bit schieben und
  30.     addx.w    d1,d1        ;ⁿber xFlag - Bit3 in D1 setzen
  31.     add.b    d0,d0        ;linksrelevantes Bit schieben und
  32.     addx.w    d1,d1        ;ⁿber xFlag - Bit2 in D1 setzen
  33.     lsr.w    #1,d2        ;untenrelevantes Bit schieben und
  34.     addx.w    d1,d1        ;ⁿber xFlag - Bit1 in D1 setzen
  35.     add.b    d2,d2        ;obenrelevantes Bit schieben und
  36.     addx.w    d1,d1        ;ⁿber xFlag - Bit0 in D1 setzen
  37.     rts            ;Rⁿcksprung
  38.  
  39.